package com.example.smartwaterapi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.smartwaterapi.entity.Alarm;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 闹钟服务接口
 */
public interface AlarmService extends IService<Alarm> {

    /**
     * 根据用户ID获取闹钟列表
     */
    List<Alarm> getAlarmsByUserId(Long userId);

    /**
     * 根据用户ID和设备ID获取闹钟列表
     */
    List<Alarm> getAlarmsByUserIdAndDeviceId(Long userId, Long deviceId);

    /**
     * 同步闹钟到服务器
     */
    boolean syncAlarm(Alarm alarm);

    /**
     * 批量同步闹钟
     */
    boolean syncAlarms(List<Alarm> alarms);

    /**
     * 获取需要触发的闹钟列表
     */
    List<Alarm> getAlarmsToTrigger();

    /**
     * 获取用户的已禁用闹钟列表
     */
    List<Alarm> getDisabledAlarmsByUserId(Long userId);

    /**
     * 更新闹钟下次触发时间
     */
    boolean updateNextTriggerTime(Long alarmId, LocalDateTime nextTriggerTime);
    
    /**
     * 清理孤儿闹钟（设备已删除但闹钟仍存在）
     */
    int cleanupOrphanAlarms();
} 